import request from '@/utils/request'
import type {
  categoryResponseData,
  attrResponseData,
  attr,
} from '@/api/product/attr/types'

//属性管理模块接口地址
enum API {
  //获取一级分类接口地址
  C1_URL = '/admin/product/getCategory1',
  //获取二级分类接口地址
  C2_URL = '/admin/product/getCategory2/',
  //获取三级分类接口地址
  C3_URL = '/admin/product/getCategory3/',
  //获取分类下已有的属性与属性值
  ATTR_URL = '/admin/product/attrInfoList/',
  //添加或者修改已有的属性的接口
  ADDORUPDATEATTR_URL = '/admin/product/saveAttrInfo',
  //删除某一个已有的属性
  DELETEATTR_URL = '/admin/product/deleteAttr',
}

// 获取一级分类数据
export const reqCategory1 = () =>
  request.get<any, categoryResponseData>(API.C1_URL)
// 获取二级分类数据
export const reqCategory2 = (category1Id: number | string) =>
  request.get<any, categoryResponseData>(API.C2_URL + category1Id)
// 获取三级分类数据
export const reqCategory3 = (category2Id: number | string) =>
  request.get<any, categoryResponseData>(API.C3_URL + category2Id)
// 获取对应分类下的相关属性
export const reqAttrInfo = (
  category1Id: number | string,
  category2Id: number | string,
  category3Id: number | string,
) =>
  request.get<any, attrResponseData>(
    API.ATTR_URL + `${category1Id}/${category2Id}/${category3Id}`,
  )

// 新增|修改属性接口
export const reqAddOrUpdateAttr = (data: attr) =>
  request.post<any, any>(API.ADDORUPDATEATTR_URL, data)

// 删除属性接口
export const reqDeleteAttr = (attrId: number) =>
  request.delete<any, any>(`${API.DELETEATTR_URL}/${attrId}`)
